#pragma once

#include <cstdint>
#include <main.h>

#if defined(__cplusplus)
namespace bsp {
void clockInit();
void delay_us(uint32_t delayTime_us);
void delay_ms(uint32_t delayTime_ms);
void updateGlobalTick();
float getGlobalTime_us_fp32();
uint64_t getGlobalTime_us_i64();
void SystemClockConfig();

namespace detail {
enum class HardTimerChannel : uint8_t {
    k1 = HAL_TIM_ACTIVE_CHANNEL_1,
    k2 = HAL_TIM_ACTIVE_CHANNEL_2,
    k3 = HAL_TIM_ACTIVE_CHANNEL_3,
    k4 = HAL_TIM_ACTIVE_CHANNEL_4,
    //  k5 = HAL_TIM_ACTIVE_CHANNEL_5,
    //  k6 = HAL_TIM_ACTIVE_CHANNEL_6
};
}
} // namespace bsp
#endif